package net.sudot.chess.util;

import java.util.regex.Pattern;

/**
 * 工具类
 *
 * @author 唐家林
 * @time 2015年5月26日
 */
public class ObjectUtil {

    private final static Pattern MOBILE_PATTERN = Pattern.compile("^1\\d{10}$");
    private final static Pattern HIDE_PATTERN = Pattern.compile("(\\w{3})\\w+(\\w{4})");

    private ObjectUtil() {
    }

    /**
     * 比较两字符串是否相同,忽略大小写
     *
     * @param s1 比较字符串
     * @param s2 被比较的字符串
     * @return 返回比较结果
     */
    public static boolean equalsIgnorecase(String s1, String s2) {
        if (s1 == null && s2 == null) {
            return true;
        }
        if (s1 != null && s2 != null) {
            if (s1.toLowerCase().equals(s2.toLowerCase())) {
                return true;
            }
        }
        return false;
    }

    /**
     * 验证字符串是否为空
     *
     * @param str 验证的字符串
     * @return 当且仅当str == null或者str的长度为0返回true
     */
    public static boolean isEmpty(String str) {
        return (str == null || str.isEmpty());
    }

    /**
     * 验证手机号码
     *
     * @param mobile 需要验证的手机号码
     * @return 返回验证结果.true:有效的手机号码;false:非法手机号码
     */
    public static boolean isMobile(String mobile) {
        if (mobile == null || mobile.isEmpty()) return false;
        return MOBILE_PATTERN.matcher(mobile).matches();
    }

    /**
     * 隐藏字符串中间部分
     *
     * @param string 原始字符串
     * @return 处理后的字符串
     */
    public static String hide(String string) {
        if (string == null) { return null; }
        return HIDE_PATTERN.matcher(string).replaceAll("$1****$2");
    }
}
